﻿using System;
using System.Collections;
using System.Linq;
using System.Text;
using Data;
using Utility;
using System.Collections.Generic;

namespace DataAccess
{
    public class PhongHocControl
    {
        // tạo đối tượng của lớp LinqUtility , đối tương này sẽ xử lý trên bảng PhongHoc
        LinqUtility<PhongHoc> context = new LinqUtility<PhongHoc>();

        // Tạo đối tượng database của linq
        QuanLyPhongHocDataContext db = new QuanLyPhongHocDataContext();


        // Lấy danh sách phòng học
        public List<PhongHoc> GetListPhongHoc()
        {
            return context.GetAll();
        }

        // Lấy MAPH lớn nhất trong bảng phòng học
        private string GetMaxId()
        {
            var query = (from q in db.PhongHocs
                         select q.MaPH).Max();
            return query.ToString();
        }

        // tạo MaPH tự động
        public string GenerateMaPH()
        {
            string newId = "";
            if (this.GetListPhongHoc().Count == 0)
            {
                newId = "P001";
            }
            else
            {
                string id = this.GetMaxId();
                int magv = Convert.ToInt32(id.Remove(0, 1)) + 1;
                newId = "P" + magv.ToString("00#");
            }
            return newId;
        }

        // tạo
        public void InsertPhongHoc(PhongHoc ph)
        {
            context.Insert(ph);
        }

        // sửa
        public void UpdatePhongHoc(PhongHoc ph)
        {
            context.Update(ph);
        }

        // xóa
        public void DeletePhongHoc(PhongHoc ph)
        {
            context.Delete(ph);
        }

        // Lấy 1 dòng dữ liệu trong bảng phòng học theo id
        public PhongHoc GetPhongHocById(string id)
        {
            var ph = from p in db.PhongHocs
                     where p.MaPH.Equals(id)
                     select p;
            return ph.Single();
        }
        //kiểm tra khi xóa phòng học co tham chiếu bên bang XepPhong hay ko
        public int CheckDeletePhongHoc(int id)
        {
            var ph =( from p in db.XepPhongs
                      where p.MaPH.Equals(id)
                     select p).ToList();
            return ph.Count;
        }


    }
}
